package com.zjd.association.common;

import java.util.HashMap;

/**
 * 接口响应包装
 *
 * @author: zjd
 * @date: 2024-5-22
 */
public class R extends HashMap<String, Object> {

    /**
     * 处理成功，响应码
     */
    public static final Integer SUCCESS_CODE = 0;

    /**
     * 处理成功，默认响应消息
     */
    public static final String SUCCESS_MSG = "处理成功";

    /**
     * 操作预警，响应码
     */
    public static final Integer WARN_CODE = 1;

    /**
     * 操作异常，响应码
     */
    public static final Integer ERROR_CODE = 2;

    /**
     * 操作异常，默认响应消息
     */
    public static final String ERROR_MSG = "系统异常";

    /**
     * 处理成功默认响应信息
     *
     * @return 响应结果
     */
    public static R ok() {
        R r = new R();
        r.put("code", SUCCESS_CODE);
        r.put("msg", SUCCESS_MSG);
        return r;
    }

    /**
     * 处理成功，返回指定的消息和数据
     *
     * @param msg  指定消息
     * @param data 指定数据
     * @return 响应结果
     */
    public static R ok(String msg, Object data) {
        R r = new R();
        r.put("code", SUCCESS_CODE);
        r.put("msg", msg);
        r.put("data", data);
        return r;
    }

    /**
     * 处理成功，返回内容中附加数据
     *
     * @param data 指定响应的数据
     * @return 响应结果
     */
    public static R ok(Object data) {
        R r = new R();
        r.put("code", SUCCESS_CODE);
        r.put("msg", SUCCESS_MSG);
        r.put("data", data);
        return r;
    }

    /**
     * 操作警告，返回指定的告警信息
     *
     * @param msg 指定信息
     * @return
     */
    public static R warn(String msg) {
        R r = new R();
        r.put("code", WARN_CODE);
        r.put("msg", msg);
        return r;
    }

    /**
     * 系统异常，返回指定的异常信息
     *
     * @param msg 异常信息
     * @return 响应结果
     */
    public static R error(String msg) {
        R r = new R();
        r.put("code", ERROR_CODE);
        r.put("msg", msg);
        return r;
    }

}
